Method of calibrating a machine having at least two rotation axes

ABSTRACT

The method can include measuring the tridimensional positions of a reference feature for a first at least three different angular positions of the reference feature around the first rotation axis and a same first reference angular position around the second rotation axis, the reference feature being fixed relative to the component; and measuring the tridimensional positions of the reference feature for a second at least three different angular positions of the reference feature around the first rotation axis and a same second reference angular position around the second rotation axis.

TECHNICAL FIELD

The application related generally to computer numerical control (CNC)machining and, more particularly, to a method of calibrating a machinewhich has at least two rotation axes.

BACKGROUND OF THE ART

While CNC machines are satisfactory to a certain extent, greater andgreater degrees of precision, operability, and practicality are expectedfrom CNC machines as time passes. There always remains room forimprovement.

SUMMARY

In one aspect, there is provided a method of calibrating a machinehaving a component rotatable around both a first rotation axis and asecond rotation axis, the method comprising: measuring thetridimensional positions of a reference feature for a first at leastthree different angular positions of the reference feature around thefirst rotation axis and a same first reference angular position aroundthe second rotation axis, the reference feature being fixed relative tothe component; measuring the tridimensional positions of the referencefeature for a second at least three different angular positions of thereference feature around the first rotation axis and a same secondreference angular position around the second rotation axis; using acomputer, and based on the measured tridimensional positions:determining a first coordinate system of the component at the firstreference angular position and calibrating a reference coordinate systemof the machine based on the first coordinate system for operating themachine with the component at the first reference angular position; anddetermining a second coordinate system of the component at the secondreference angular position and calibrating the reference coordinatesystem of the machine based on the second coordinate system foroperating the machine with the component at the second reference angularposition.

In another aspect, there is provided a computer implemented method ofoperating a CNC machine having a component rotatable around both a firstrotation axis and a second rotation axis, the method comprising:measuring the tridimensional positions of a reference feature for afirst at least three different angular positions of the referencefeature around the first rotation axis and a same first referenceangular position around the second rotation axis, the reference featurebeing fixed relative to the component; measuring the tridimensionalpositions of the reference feature for a second at least three differentangular positions of the reference feature around the first rotationaxis and a same second reference angular position around the secondrotation axis; based on the measured tridimensional positions:determining a first coordinate system of the component at the firstreference angular position; and determining a second coordinate systemof the component at the second reference angular position; and operatingthe CNC machine at the first reference angular position based on thefirst coordinate system; and operating the CNC machine at the secondreference angular position based on the second coordinate system.

In accordance with a further aspect, there is provided a computerprogram product stored in a non-transitory memory having instructionsreadable by a CNC machine CNC having a component rotatable around both afirst rotation axis and a second rotation axis to perform the steps of:measuring the tridimensional positions of a reference feature for afirst at least three different angular positions of the referencefeature around the first rotation axis and a same first referenceangular position around the second rotation axis, the reference featurebeing fixed relative to the component; measuring the tridimensionalpositions of the reference feature for a second at least three differentangular positions of the reference feature around the first rotationaxis and a same second reference angular position around the secondrotation axis; based on the measured tridimensional positions:determining a first coordinate system of the component at the firstreference angular position; and determining a second coordinate systemof the component at the second reference angular position. The CNCmachine can then be operated in a manner to take into account the secondcoordinate system when operating in the second reference angularposition and to be operated in a manner to take into account the firstcoordinate system when operating in the first reference angularposition.

DESCRIPTION OF THE DRAWINGS

Reference is now made to the accompanying figures in which:

FIG. 1 is a schematic cross-sectional view of a gas turbine engine;

FIG. 2 is a partial oblique view of a machine having two rotation axes;

FIG. 3 is shows a portion of FIG. 2, while also showing the localisationof a reference feature at three angular positions relative to a firstone of the axes;

FIG. 4 schematizes rotation of the machine of FIG. 2 along a second oneof the axes;

FIG. 5 illustrates the determination of two coordinate systems, one foreach one of two angular positions around the second axis; and

FIG. 6 illustrates the determination of two points each along one axisand each closest to a second one of the axes of corresponding coordinatesystems.

DETAILED DESCRIPTION

FIG. 1 illustrated a gas turbine engine 10 of a type preferably providedfor use in subsonic flight, generally comprising in serial flowcommunication a fan 12 through which ambient air is propelled, acompressor section 14 for pressurizing the air, a combustor 16 in whichthe compressed air is mixed with fuel and ignited for generating anannular stream of hot combustion gases, and a turbine section 18 forextracting energy from the combustion gases.

Many components in gas turbine engines such as the example presented inFIG. 1 are manufactured using CNC machines, and CNC machines are alsoused for manufacturing components in other industries than the gasturbine engine industry.

One significant feature of CNC machines is the calibration feature.Indeed, CNC machines are typically provided with sensors which can trackthe relative position of one or more moving part, such as a part holderand/or tool holder for instance, and a software which allows to operatethe machine, which involves moving the moving part, in a frame ofreference, based on the feedback from the sensors. The sensors cantherefore be said to operate in the frame of reference of the CNCmachine, and to a certain extent, their signals also define the frame ofreference of the CNC machine.

When the CNC software is used for the first time on a given machine, thecalibration is used to provide an absolute reference to the relativemovements sensed by the sensors. In other words, it can be used toposition a virtual reference frame of the CNC machine relatively to thedifferent moveable components of the machine, or more specifically, tothe sensor outputs. Calibration can also be used to correct changes inthe relative positions of the sensors and moving parts in the machinerelative to one another which can occur over time, or due to shocks, forinstance.

The sensors are the eyes of the CNC machine which allows the software toknow where the moving part is located. The software is used for manydifferent machines, which may have slight variations in the frame ofreference from one machine to another. The CNC machine can thus becalibrated to take into account the reality of the machine. Thecalibration can involve setting an origin and an orientation of theframe of reference based on the measured position of reference elementsin the actual CNC machine. The reference elements can constitute acoordinate system, and the calibration can involve setting the originand orientation of axes of the frame of reference of the machinerelative to this coordinate system. Typically, the components aremoveable in three dimensions and the frame of reference of the machineis thus 3-dimensional. It can use Cartesian coordinates, cylindricalcoordinates, or spherical coordinates, to name three examples, dependingon what was considered most suitable by the software engineers based onthe specifics of the actual machine the software is designed for.

In many production environments, several CNC machines are used toproduce multiple components simultaneously. Performance of CNC machinesis typically assessed by taking into consideration the degree ofprecision achieved and the speed of execution of various tasks, but alsoin terms of practicality (user-friendlyness).

Some CNC machines have a component which is moved around more than onerotation axis during operation. The rotated component can be a partholder, or a tool holder, for instance, as in some cases the tool hasgreater movement ability than the part, and in others, it is the partwhich has greater movement ability than the tool. In some cases the toolhas more degrees of freedom than the part during operation of themachine, whereas in others, it is the part which is moved over moredegrees of freedom than the tool during operation.

To achieve high precision, CNC machines typically need one form oranother of calibration. Ideally, the position and orientation of asecond one of the rotation axes would remain perfectly fixed relative tothe component at different angular positions around the second rotationaxis, but in practice, mechanisms to move the component around rotationaxis are typically imperfect, especially when more than one rotationaxis is in play, and the position of the second rotation axis may moverelative to a reference frame of, or coordinated system fixed relativeto, the component for different angular positions around the secondrotation axis, and this can be a source of inaccuracy when operating themachine, i.e. when machining the part based on the latter form ofcalibration.

Indeed, if the rotation around the second rotation axis is modelized bythe machine as a mathematical rotation around the second rotation axis,whereas in reality a translation and/or rotation around another rotationaxis occurs in addition to the rotation around the second rotation axis,the part will not be exactly at the position the tool expects it to be,or vice versa, and the tool will perform the machining slightly offset,or disoriented, relative to the position and orientation where it shouldbe performing the machining, resulting in variations in the finishedparts which may not meet the predetermined geometrical tolerances.

It was found that such a source of inaccuracy can be alleviated by acalibration method which will now be explained in reference to a firstexample.

FIG. 2 shows an example of a machine 20 in which a component can berotated around a first rotation axis 24. The component is a part holder22 in this specific example. More specifically, the part holder 22 ismounted in a carriage 26 via a bearing assembly (not shown), and thepart holder 22 can be rotated around the first rotation axis 24 relativeto the carriage 26 via the bearing assembly. In practice, CNC machinesare typically provided with a tracking device such as an encoder whichis used to provide a signal indicative of the angular position of thecomponent around the first axis 24. Accordingly, a computer receivingthe signal can determine the angular position of the component aroundthe first axis 24.

Still referring to the machine 20 illustrated in FIG. 2, the part holder22 can also be rotated around a second rotation axis 28. Morespecifically, the carriage 26 itself is received on a cradle support 30defining an arc-shaped carriage path along which the carriage 26 can bedisplaced in a manner for the part holder 22 to be rotated around asecond rotation axis 28. In practice, CNC machines are typicallyprovided with a tracking device such as an encoder to provide a signalindicative of the angular position of the component around the secondaxis 28, and a computer receiving the signal can determine the angularposition of the component around the second axis 28. In this example,the second rotation axis 28 is, in theory, orthogonal to the firstrotation axis 24, and intersects the first rotation axis 24 at aspecific point referred to as the pivot point 32. The second rotationaxis may be non-orthogonal to the first rotation axis in otherembodiments.

Theoretically, the part holder 22 would always be at the same distancefrom the pivot point 32, and the second rotation axis 28 would always beperfectly aligned with a center of the part holder 22. In other words,the second rotation axis 28 would always be at a fixed height, fixedtransversal position, and fixed orientation in the frame of reference ofthe part holder 22, independently of which angular position the carriage26 occupies along the cradle support 30. In practice, the cradle support30 will not be perfectly arc-shaped, and due to variations off theperfect arc-shape, the position of the second rotation axis 28 willactually vary, in the frame of reference of the part holder 22,depending on the angular position of the carriage 26 along the cradlesupport 30. More specifically, relative to the corresponding positionand orientation at a first reference angular position around the secondrotation axis, the distance between the second rotation axis and thepart holder, the transversal position of the second rotation axis,and/or the orientation of the second rotation axis may have changed at asecond reference position around the second rotation axis. Similarissues can occur with the rotation axis of the part holder relative tothe carriage, which can be referred to as the first rotation axis forinstance, but in this embodiment, the changes in the relative positionof the first rotation axis were negligible compared to the changes inthe relative position of the second rotation axis. Similar issues canalso occur with one or more additional rotation axes in cases where thecomponent, be it a part holder or a tool holder, is rotatable aroundthree, or more, rotation axes. Accordingly, it is to be understood thatthe detailed description of the following example is extendible to suchother contexts.

Let us now explore the possible effect of such a possible source ofinaccuracy. Let us consider a scenario where the movement of the partholder 22 is modeled as being a perfect rotation around thecarriage/cradle support rotation axis 28. In this scenario, one willassume that the part holder has undergone a perfect rotation around thisrotation axis 28, and the extent of this perfect rotation is determinedbased on the signal received from the tracking device. Let us consider ascenario where the tool holder begins machining the part at a firstangular position around that axis 28 according to a first set ofcomputer-readable instructions, and then moves on to continue to machinethe part at a second angular position around that axis 28. The machineexpects the part to be at the same position and orientation relative tothe part holder, plus a mathematical rotation around the second rotationaxis 28. However, due to imperfections in the carriage/cradle supportarticulation, the part is in fact somewhat offset and somewhatdisoriented relative to that expected orientation. Otherwise said, theposition of the pivot point may have moved relative to the part holderbetween the two angular positions, rather than being at exactly the samepoint. This will lead to a discontinuity in the machining precisionbetween the two angular positions, and this discontinuity will depend onthe extent of the axis' displacement between the two angular positions.It was found possible to factor out, or at least significantlyalleviate, such a source of inaccuracy as follows.

Firstly, the component can be placed at a first reference angularposition around the second axis, such as shown in FIG. 2 for instance,at a first angular position around the first axis, such as shown insolid lines in FIG. 3 for instance. The position of a reference feature34 associated to the component is measured using an automated measuringsystem, in a reference frame of the machine, which, if the component isthe part holder 22, can be the control reference frame of the toolholder 36 for instance. The reference feature can be any suitablereference feature which is fixed relative to the component, includingpart of the component itself. In this embodiment, as shown in FIG. 3, itwas found suitable that the reference feature 34 be a sphere fixedlymounted on the part holder 22 for the duration of the measurements. Theautomated measuring system can be any suitable automated measuringsystem. In one embodiment, the automated measuring system can include atouch probe 38 mounted to the tool holder 36 of the machine, forinstance. In another embodiment, the automated measuring system caninclude a 3D scanner fixed to a frame of the machine, for instance.

While maintaining the angular position around the second rotation axis28, which is the carriage/cradle support rotation axis in this specificexample, the component is then rotated to a second angular positionaround the first axis 24, where the position of the reference feature34′ is again measured, and the component is then rotated to a thirdangular position around the first axis, where the position of thereference feature 34″ is again measured, in a process schematized inFIG. 3. If desired, the position of the reference feature 34 can bemeasured for additional angular positions around the first axis 24. Inpractice, the angular positions are “measured” via a computer whichdetermines coordinates in a reference system of the machine based on thesignal received from the automated measuring system.

From these three, or more, measured positions, a computer can determinea) a position and orientation of the first rotation axis, and b) areference point along that axis relative to the position of thecomponent, for the first reference angular position around the secondaxis. This can involve determining a circle, or arc, including the threeor more measured positions, determining the center point of this circleor arc, determining a plane with which this circle or arc coincides, anddetermining the rotation axis as being normal to the plane, andcontaining the center point. The reference point along that axis can beany suitable reference point along that axis, such as the center point,or the height of a reference feature of the component along that axis,for instance. In this embodiment, it was found preferable that thereference point be associated to a point considered closest to thesecond rotation axis, as this may make any reference frame adjustmentseasier to compute, for instance. The determined position and orientationof the axis and of the reference point along the axis can then be usedas the basis of a coordinate system for operating the machine when thecomponent is in the first reference angular position around the secondaxis. In other words, the machine can be calibrated to operate on thebasis of the measured position and orientation of the axis and of thereference point at the first angular reference position around thesecond axis. This coordinate system can have its origin located at alocation along the axis which is considered to be the pivot point, forinstance. Alternately, the position of the pivot point can be refinedusing the measurements taken at a second reference angular position, oradditional reference angular positions, such as the example presentedbelow, to name an example.

Then, the component can be rotated to a second reference angularposition around the second rotation axis 28. In this example, this canbe done by moving the carriage 26 long the cradle support 30, such asschematized in FIG. 4, for instance. Then the process which waspresented above to determine a first coordinate system associated withthe first reference angular position, say 0 degrees for instance, aroundthe second rotation axis 28, is then repeated for the second referenceangular position, say 12.5 degrees for instance, around the secondrotation axis 28, including measuring the position of the referencefeature at three or more angular positions relative to the firstrotation axis 24 while maintaining the second reference angular positionof 12.5 degrees around the second rotation axis, and determining aposition and orientation of the first rotation axis and of a referencepoint along that axis relative to the position of the component, at thesecond reference angular position around the second axis.

It will be understood that for the tool to reach the correct positionson the part held in the part holder when the machine operates at thesecond reference angular position around the second rotation axis, themachine must adjust its coordinate system to take into account therotation around the second rotation axis. Here, instead of simplyadjusting the frame of reference as a function of a mathematicalrotation made relative to a predetermined pivot point, based on themeasured position of the carriage along the cradle support, a differencecan be made between the position and orientation of the secondcoordinate system, obtained via the measurements taken at 12.5 degrees,and the position and orientation of the first coordinate system,obtained via the measurements taken at 0 degrees. The operation will be,to a certain extent, more complex than performing a mathematicalrotation, but it will also lead to more accurate operation of themachine.

Indeed, the determined position and orientation of the first rotationaxis and of the reference point along that axis is then used as a basisof a coordinate system for operating the machine when the component isin the second reference angular position around the second axis.Accordingly, the inaccuracies caused by the practical imperfections ofthe carriage/cradle support rotation are factored out or at leastalleviated by contrast with a method which assumes that the position andorientation of the first rotation axis and of the reference point alongthat axis at the second reference angular position corresponds to amathematical rotation of these features around the second rotation axisfrom the corresponding features determined for the first referenceangular position.

In practice, it can be considered practical for the computer tocalculate a difference between the coordinate systems determined for thefirst and second reference angular positions. This difference can takethe form of a displacement matrix, for instance, where a tridimensionaldisplacement value is associated to each point in the first referenceposition, which leads to a corresponding point in space relative to thecomponent in the second reference position when applied. Thedisplacement matrix can integrate a translation of an origin of thecoordinate system in addition to a rotation thereof. Alternately, thedifference can take the form of a mathematical equation which includes atranslation of an origin of the coordinate system in addition to arotation around an origin thereof, for instance. Accordingly, from thereference point of view of the machine tool, to follow up on the examplepresented above, the machine tool can simply see its instructioncoordinates transformed, potentially by a combination of a translationand a rotation, which can take the form of a the displacement matrix, orof an equation, as opposed to seeing its instruction coordinatestransformed by a simple rotation around a theoretical second rotationaxis, when the component is moved to the second reference angularposition.

Even the coordinate system used to machine the part at the firstreference angular position can be refined based on the measurementsperformed at the second reference angular position. Indeed, instead ofsetting an origin, or other reference point, at a theoretical pivotpoint along the axis determined using the measurements performed at thefirst reference angular position, the position of such origin or otherreference point can be adjusted to correspond to the point along theaxis determined at the first reference angular position which is closestto the axis determined at the second reference angular position, in thereference frame of the machine.

If a given part is predetermined to also require machining at a thirdreference angular position, the process can be repeated to determine athird coordinate system for the third reference angular position, and totransform the instruction coordinates by the corresponding displacementmatrix, for instance. Alternately, it may be possible, or consideredsatisfactory, in certain embodiments to calibrate a machine byestablishing coordinate systems such as presented above for a number ofreference angular positions, and to interpolate or extrapolate adisplacement matrix at angular positions which are between or otherwisedifferent from the reference angular positions, in a manner that when apart needs to be machined at an angular position which does notcorrespond to any one of the reference angular positions, a displacementmatrix obtained via an interpolation or extrapolation can be used in amanner to avoid having to perform a calibration specific to thatspecific angular position.

FIGS. 5 and 6 provide a visual representation of an example of theelements which can be obtained using a method such as described above,for a given machine. Undergoing the first step, with measurements takenat 0 degrees around the second axis, leads to the identification ofabsolute position measurement of three points P1, P1′, P1″ in thereference system 40 of the machine, which are fitted to a circle 42 ofwhich the center 44 is identified, and an axis 46 is defined to fit withthe center point 44, normal to the circle 42. Accordingly, a firstcoordinate system 47 of the component, at 0 degrees around the secondrotation axis, is established, and the machine can be calibrated to takeinto account the position and orientation of this first coordinatesystem in its own coordinate system 40. The second step, withmeasurements taken at 12.5 degrees around the second axis, leads to theidentification of an absolute position measurement of three points P2,P2′, P2″, which are fitted to a circle 50 of which the center 52 isidentified, and an axis 54 is defined to fit with the center point 52,normal to the circle 50. Accordingly, a second coordinate system 55 ofthe component is established at 12.5 degrees around the second axis, andthe machine can be calibrated to take into account the position andorientation of this second coordinate system in its own coordinatesystem 40 when machining the part at 12.5 degrees around the secondrotation axis.

In one example embodiment, as will now be explained with reference toFIG. 6, reference points 62, 64 along both axes can then defined byfinding the point along each axis which is closest to the other axis.These points can then be considered as the pivot point for eachcorresponding axis, and the origin of the corresponding coordinatesystem can be established to be at the corresponding point, if desired.Indeed, such points may undergo minimal displacement and can thereforebe practical to use as an origin of the coordinate systems of the part.In FIG. 6, the reference points appear distinct by opposition with FIG.5 where the points 62, 64 appear to coincide, because they are viewedfrom a different angle. In practice, the points 62, 64 will neverperfectly coincide, and there will always be a vector 66 which can beidentified as extending straight from the first point 62 to the secondpoint 64. In another embodiment the pivot point can be established asbeing a point along the corresponding axis which is at a predetermineddistance from the circle, for instance. Using a computer, knowing theposition of both axes 46 and 54 in the reference frame 40 of themachine, and on the basis of established reference points 62 and 64 forinstance, for any point i on the part to be machined at 0 degrees aroundthe second axis, the corresponding same point i′ of the part to bemachined, but at 12.5 degrees (or any other second reference angularposition) around the second axis, can be calculated in the referencepoint of the machine. The same process can be repeated by all points inthe first coordinate system to provide a displacement matrix which, whenapplied to any point associated to the first coordinate system, willyield the corresponding point in the second coordinate system. Givenimperfections in the articulation of the second axis, there will be adifference between the position of this point i′ as calculated above,and the position of the corresponding point based on a perfectmathematical rotation around the theoretical position of the secondrotation axis, and the point i′ as calculated above, will provide a moreprecise indication of the corresponding point on the part to bemachined.

Practically speaking, the following values can be defined:

-   -   #720{ANGLE B}=0    -   #721{CENTER TABLE X}=#100    -   #722{CENTER TABLE Y}=#101    -   #723{CENTER TABLE Z}=#102    -   #724{RADIUS}=#103    -   #725{A}=#104    -   #726{B}=#105    -   #727{C}=#106    -   #728{D}=#107    -   #729{ANGLE B}=ATAN[#725]/[#727]    -   #730{ANGLE AXE X}=ATAN[#726]/[#727]    -   #731{AXO U}=#3207    -   #732{AXO V}=#3208    -   #733{AXO Z}=#3209    -   #734{CENTER X SPHERE}=#131    -   #735{CENTER Y SPHERE}=#132    -   #736{CENTER Z SPHERE}=#133    -   #780{ANGLE B}=12.5    -   #781{CENTER TABLE X}=#100+#3142    -   #782{CENTER TABLE Y}=#101+#3143    -   #783{CENTER TABLE Z}=#102+#3146    -   #784{A}=#104    -   #785{B}=#105    -   #786{C}=#106    -   #787{CRP X}=[#179*[#725+#784]+[#721+#3142]+#781]/2    -   #788{CRP Y0-12.5}=#179*#726+#722+#3143    -   #789{CRP Y12.5}=#179*#785+#782    -   #790{CRP Z}=#179*#786+#783    -   #791{ANGLE B}=ATA N [#784]/[#786]    -   #792{ANGLE AXE X}=ATAN[#785]/[#786]    -   #793{AXO U}=#3207    -   #794{AXO V}=#3208    -   #795{AXO Z}=#3209    -   #796{COMP CRP X}=#197    -   #797{COMP CRP Y}=#198    -   #798{COMP CRP Z}=#199

Where:

-   -   Angle B is the angular position of the component around the        second axis.    -   #721-#723 are the coordinates of the center of rotation at BO    -   #725-#728: the equation of the plane at B0=Ax+By+Xz+D, normal        axis=A=i, B=j, C=k    -   #734-#736: reference coordinates at B0 for simulation    -   #781-#783: coordinates of the center of rotation at B12.5    -   #784-#786: equation of the plane at B12.5=Ax+By+Xz+D, normal        axis=A=i, B=j, C=k    -   #787-#790: coordinates of the theoretical pivot point at B12.5        with correspondence at B0    -   #796-#798: difference between theoretical position based on pure        rotation and actual position based on measurements made at B12.5

It will be understood that a similar approach can be taken to makecorrections on the basis of measurements taken at other angles aroundthe second axis than 12.5 degrees.

It will be understood that the expression “computer” as used herein isnot to be interpreted in a limiting manner. It is rather used in a broadsense to generally refer to the combination of some form of one or moreprocessing units and some form of non-transitory memory systemaccessible by the processing unit(s). The use of the expression“computer” in its singular form as used herein includes within its scopethe combination of a two or more computers working collaboratively toperform a given function. Moreover, the expression “computer” as usedherein includes within its scope the use of partial capacities of aprocessing unit of an elaborate computing system also adapted to performother functions. Similarly, the expression ‘controller’ as used hereinis not to be interpreted in a limiting manner but rather in a generalsense of a device, or of a system having more than one device,performing the function(s) of controlling one or more device such as anelectronic device or an actuator for instance.

It will be understood that the various functions of a computer or of acontroller can be performed by hardware or by a combination of bothhardware and software. For example, hardware can include logic gatesincluded as part of a silicon chip of the processor. Software can be inthe form of data such as computer-readable instructions stored in thememory system. With respect to a computer, a controller, a processingunit, or a processor chip, the expression “configured to” relates to thepresence of hardware or a combination of hardware and software which isoperable to perform the associated functions.

In the example presented above, for instance the processor and memoryhardware used to obtain the position measurements can be the same as theprocessor and memory hardware which is used to calculate the coordinatesystems based on these measurements, and can be the same as theprocessor and memory hardware which is used to control the movement ofthe tool holder or part holder. Alternately different processor andmemory hardware elements can be used to perform these three differentfunctions, or to perform subgroups of one or two of these differentfunctions, for instance, and different ones of the processor and memoryhardware elements can be equipped with communication devices to allowcommunication of signals or data via wires or wirelessly, for instance.The expression “computer” as used herein is used generally to refer toeither one of such processor and memory hardware elements or to acombination of two or more of such processor and memory hardwareelements, for the sake of simplicity.

The above description is meant to be exemplary only, and one skilled inthe art will recognize that changes may be made to the embodimentsdescribed without departing from the scope of the invention disclosed.Still other modifications which fall within the scope of the presentinvention will be apparent to those skilled in the art, in light of areview of this disclosure, and such modifications are intended to fallwithin the appended claims.

1. A method of calibrating a machine having a component rotatable arounda first rotation axis and a second rotation axis, the method comprising:measuring a 3-dimensional position of a reference feature for at leastthree angular positions of the reference feature around the firstrotation axis and a first reference angular position around the secondrotation axis, the reference feature fixed relative to the component;measuring a 3-dimensional position of the reference feature for at leastthree angular positions of the reference feature around the firstrotation axis and a second reference angular position around the secondrotation axis; using a computer, and based on the measuredtridimensional positions: determining a first coordinate system of thecomponent at the first reference angular position and calibrating areference coordinate system of the machine based on the first coordinatesystem for operating the machine with the component at the firstreference angular position; and determining a second coordinate systemof the component at the second reference angular position andcalibrating the reference coordinate system of the machine based on thesecond coordinate system for operating the machine with the component atthe second reference angular position.
 2. The method of claim 1 whereinthe first coordinate system and the second coordinate system bothinclude a determined position and orientation of the first rotation axisin a reference coordinate system of the machine.
 3. The method of claim2 further comprising determining a reference point along the determinedposition and orientation of the first rotation axis for both the firstcoordinate system and the second coordinate system, the reference pointsbeing determined as a point closest to the determined position andorientation of the first rotation axis in the other coordinate system.4. The method of claim 3 further comprising, defining the referencepoints as pivot points of the rotation axes.
 5. The method of claim 4further comprising, using establishing a displacement matrix matchingevery point in the first coordinate system to a corresponding point inthe second coordinate system based on a difference between the firstcoordinate system and the second coordinate system.
 6. The method ofclaim 1 wherein the component is a part holder.
 7. The method of claim 1wherein the measuring is performed with a touch probe handled by a toolholder of the machine.
 8. The method of claim 7 wherein the measuringincludes controlling the movement of the tool holder using a computer.9. The method of claim 8 wherein the control of the movement of the toolholder during the measurements taken at the second reference angularposition is based on a mathematical rotation of the first coordinatesystem around a theoretical position of the second rotation axis by anangle equivalent to the difference between the first reference angularposition and the second reference angular position.
 10. The method ofclaim 1 wherein the first coordinate system and the second coordinatesystem both include at least an arc fitting the corresponding threeangular positions, an axis normal to the arc and intersecting a centerof the arc, and a reference position along the length of the axisrelative to the center of the arc.
 11. The method of claim 10 whereinthe position along the length of the axis corresponds to a theoreticalposition of the second rotation axis.
 12. The method of claim 10 whereinthe reference position along the length of the axis corresponds to apoint closest to the axis of the other coordinate system.
 13. The methodof claim 1 wherein the component is further rotatable around a thirdrotation axis, wherein the steps of measuring are performed at a firstreference angular position around the third rotation axis, and repeatedfor at least a second reference angular position around the thirdrotation axis, the steps of determining are performed for the firstreference angular position around the third rotation axis, and repeatedfor the second reference angular position around the third rotationaxis.
 14. A computer implemented method of operating a CNC machinehaving a component rotatable around both a first rotation axis and asecond rotation axis, the method comprising: measuring the 3-dimensionalposition of a reference feature for at least three different angularpositions of the reference feature around the first rotation axis and afirst reference angular position around the second rotation axis, thereference feature being fixed relative to the component; measuring the3-dimensional positions of the reference feature for at least threedifferent angular positions of the reference feature around the firstrotation axis and a second reference angular position around the secondrotation axis; based on the measured tridimensional positions:determining a first coordinate system of the component at the firstreference angular position; determining a second coordinate system ofthe component at the second reference angular position; operating theCNC machine at the first reference angular position based on the firstcoordinate system; and operating the CNC machine at the second referenceangular position based on the second coordinate system.
 15. The methodof claim 14 wherein the component is a part holder, and operating theCNC machine includes moving a tool holder relative to the part holder.16. The method of claim 14 wherein operating the CNC machine based onthe second coordinate system includes determining a difference betweenthe first coordinate system and the second coordinate system, andtransforming a reference system of the CNC machine based on thedifference.
 17. The method of claim 14 comprising calibrating the CNCmachine for the first reference angular position including adapting areference coordinate system of the CNC machine based on the determinedfirst coordinate system.
 18. The method of claim 14 wherein the firstcoordinate system and the second coordinate system both include adetermined position and orientation of the first rotation axis in areference coordinate system of the machine.
 19. The method of claim 18further comprising determining a reference point along the determinedposition and orientation of the first rotation axis for both the firstcoordinate system and the second coordinate system, the reference pointsbeing determined as a point closest to the determined position andorientation of the first rotation axis in the other coordinate system.20. The method of claim 19 further comprising, defining the referencepoints as pivot points of the rotation axes.